package com.tedu.api.io;

import org.apache.commons.imaging.*;
import org.junit.Test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * 图片流
 * <p>
 * Apache Commons Imaging 提供图片读写操作  处理格式jpg、png、tiff、gif
 *
 * <groupId>junit</groupId>
 * <artifactId>junit</artifactId>
 * <version>RELEASE</version>
 * <scope>compile</scope>
 * 准备:1.项目结构.mvn
 * 2.准备图
 * 3.知道maven仓库网站'''搜mvn仓库
 * http://mvnrepository.com/
 * <p>
 * 第三方库  复制的粘贴到pom.xml文件中
 * <dependency>
 * <groupId>org.apache.commons</groupId>
 * <artifactId>commons-imaging</artifactId>
 * <version>1.0-alpha2</version>
 * </dependency>
 */
public class ImageFile {
    /**
     * Apache Commons Imaging
     * ja中很多类,静态方法设置类中
     * Imaging类--->getBufferedImage("")存图片的流
     * 读操作:可以读到宽度、高度、像素信息
     */
    @Test
    public void testImageR() throws IOException, ImageReadException {
        //File 文件 :获取文件路径
        File file = new File("8edd7e93e88c25ce31e77a2a7d2cbc19-removebg-preview.png");//导包
        //读取图片文件信息
        BufferedImage bi=Imaging.getBufferedImage(file);//返回值  BufferedImage  叉出去
        //打印图片信息 文件信息:宽高
        int width=bi.getWidth();//图片的宽度
        int height=bi.getHeight();//图片的高度
        System.out.println("宽:"+width+"高"+height);//读取图片的宽和高
    }
    /**
     *  Apache Commons Imaging
     *  写操作:先进行读操作,然后写出图片
     *  Imaging.writeImage(读入图片,写出图片,指定图片格式,null)
     *  指定图片格式:ImageFormats 图片格式类--静态属性
     *  BufferedImage 缓冲图片流--高效传输图片
     */
    @Test
    public void testImageW() throws IOException, ImageReadException, ImageWriteException {
        File file = new File("8edd7e93e88c25ce31e77a2a7d2cbc19-removebg-preview.png");
        BufferedImage src=Imaging.getBufferedImage(file);//叉出去
        //写出图片
        File desc=new File("写出图片.gif");
        Imaging.writeImage(src,desc, ImageFormats.PNG,null);//叉出去
        System.out.println("成成成成成了~~~");


    }}
